home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / buffr2.zip / BUFFTEST.PAS < prev   
Pascal/Delphi Source File  |  1993-01-04  |  2KB  |  100 lines

  1. Program BuffTest;
  2.  
  3. Uses BuffAray,Crt;
  4.  
  5. Const
  6.   Size = 2000;
  7. Var
  8.   R,P     : BufferedArray;
  9.   I,J,K,L : LongInt;
  10.  
  11. Begin
  12.   ClrScr;
  13.   RandomIze;
  14.   R.Create;
  15.   P.Create;
  16.   WriteLn ('MemAvail before Initialization = ',MemAvail);
  17.   WriteLn ('Initializing...');
  18.   R.Init (Size,SizeOf(LongInt),MemAvail Div 2,'Test1.dat');
  19.   P.Init (1,1,1,'Test2.dat');
  20.   WriteLn ('Initialization Complete.');
  21.   WriteLn ('MemAvail after Initialization = ',MemAvail);
  22.   WriteLn ('Object size = ',SizeOf(R));
  23.  
  24.   ClrScr;
  25.   For I := Size-1 downto 0 do
  26.     Begin
  27.       J := I;
  28.       GoToXY (20,13);
  29.       Write ('Loading Element # ',I);
  30.       ClrEol;
  31.       R.Accept (J,I,SizeOf(J))
  32.     End;
  33.  
  34.   GoToXY (1,14);
  35.   Write ('Press Return to Continue...');
  36.   ReadLn;
  37.   GoToXY (1,14);
  38.   Write ('Copying...');
  39.   ClrEol;
  40.   WriteLn;
  41.  
  42.   P.Copy (R);
  43.  
  44.   WriteLn ('MemAvail after Copying = ',MemAvail);
  45.   Write ('Press Return to Continue...');
  46.   ReadLn;
  47.   WriteLn ('Storing Both Arrays...');
  48.  
  49.   R.Store;
  50.   P.Store;
  51.  
  52.   WriteLn ('MemAvail after Storing = ',MemAvail);
  53.   Write ('Press Return to Continue...');
  54.   ReadLn;  WriteLn ('Loading Both Arrays...');
  55.  
  56.   R.Load ('Test1.Dat',SizeOf (LongInt),MemAvail Div 2);
  57.   P.Load ('Test2.Dat',SizeOf(LongInt),MemAvail);
  58.  
  59.   WriteLn ('MemAvail after Loading = ',MemAvail);
  60.   Write ('Press Return to Continue...');
  61.   ReadLn;
  62.   GoToXY (20,12);
  63.   Write ('500 random accesses.');
  64.  
  65.   For I := 1 to 500 do
  66.     Begin
  67.       K := Round (Random * (Size-1));
  68.       GoToXY (20,14);
  69.       Write (I);
  70.       GoToXY (20,13);
  71.       P.Retrieve (J,K,SizeOf(J));
  72.       R.Retrieve (L,K,SizeOf(J));
  73.       If (J <> L) or (L <> K) Then
  74.         Begin
  75.           ClrEol;
  76.           Write ('Accessing Element # ',K);
  77.           Write ('  Error at : ',K,' J = ',J,' L = ',L);
  78.           ReadLn
  79.         End
  80.       Else
  81.         Begin
  82.           ClrEol;
  83.           Write ('Accessing Element # ',K);
  84.           Write ('  Element is: ',L:5);
  85.         End
  86.     End;
  87.  
  88.   GoToXY (1,22);
  89.   Write ('Press Return to Continue...');
  90.   ReadLn;
  91.   WriteLn ('Destroying...');
  92.  
  93.   R.Destroy;
  94.   P.Destroy;
  95.  
  96.   WriteLn ('Done. Press Return to Continue...');
  97.   ReadLn
  98. End.
  99.  
  100.